home *** CD-ROM | disk | FTP | other *** search
Wrap
XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) NNNNAAAAMMMMEEEE XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee - The Primitive widget class SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS #include <Xm/Xm.h> VVVVEEEERRRRSSSSIIIIOOOONNNN This page documents Motif 2.1. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN Primitive is a widget class used as a supporting superclass for other widget classes. It handles border drawing and highlighting, traversal activation and deactivation, and various callback lists needed by Primitive widgets. Primitive and all its subclasses hold the _X_m_Q_T_c_a_r_e_P_a_r_e_n_t_V_i_s_u_a_l trait. DDDDaaaattttaaaa TTTTrrrraaaannnnssssffffeeeerrrr BBBBeeeehhhhaaaavvvviiiioooorrrr Primitive has no widget class conversion or destination procedure. Subclasses and the XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk procedures are responsible for any conversion of selections. Subclasses and the subclass XXXXmmmmNNNNddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkk procedures are responsible for any data transfers to the widget. CCCCllllaaaasssssssseeeessss Primitive inherits behavior, resources, and traits from CCCCoooorrrreeee. The class pointer is _x_m_P_r_i_m_i_t_i_v_e_W_i_d_g_e_t_C_l_a_s_s. The class name is XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee. NNNNeeeewwww RRRReeeessssoooouuuurrrrcccceeeessss The following table defines a set of widget resources used by the programmer to specify data. The programmer can also set the resource values for the inherited classes to set attributes for this widget. To reference a resource by name or by class in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove the XXXXmmmmNNNN or XXXXmmmmCCCC prefix and use the remaining letters. To specify one of the defined values for a resource in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove the XXXXmmmm prefix and use the remaining letters (in either lowercase or uppercase, but include any underscores between words). The codes in the access column indicate if the given resource can be set at creation time (C), set by using XXXXttttSSSSeeeettttVVVVaaaalllluuuueeeessss (S), retrieved by using XXXXttttGGGGeeeettttVVVVaaaalllluuuueeeessss (G), or is not applicable (N/A). XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt NNNNaaaammmmeeee CCCCllllaaaassssssss TTTTyyyyppppeeee DDDDeeeeffffaaaauuuulllltttt AAAAcccccccceeeessssssss Page 1 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) XmNbottomShadowColor XmCBottomShadowColor Pixel dynamic CSG XmNbottomShadowPixmap XmCBottomShadowPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG XmNconvertCallback XmCCallback XtCallbackList NULL C XmNforeground XmCForeground Pixel dynamic CSG XmNhelpCallback XmCCallback XtCallbackList NULL C XmNhighlightColor XmCHighlightColor Pixel dynamic CSG XmNhighlightOnEnter XmCHighlightOnEnter Boolean False CSG XmNhighlightPixmap XmCHighlightPixmap Pixmap dynamic CSG XmNhighlightThickness XmCHighlightThickness Dimension 2 CSG XmNlayoutDirection XmCLayoutDirection XmDirection dynamic CG XmNnavigationType XmCNavigationType XmNavigationType XmNONE CSG XmNpopupHandlerCallback XmCCallback XtCallbackList NULL C XmNshadowThickness XmCShadowThickness Dimension 2 CSG XmNtopShadowColor XmCTopShadowColor Pixel dynamic CSG XmNtopShadowPixmap XmCTopShadowPixmap Pixmap dynamic CSG XmNtraversalOn XmCTraversalOn Boolean True CSG XmNunitType XmCUnitType unsigned char dynamic CSG XmNuserData XmCUserData XtPointer NULL CSG XXXXmmmmNNNNbbbboooottttttttoooommmmSSSShhhhaaaaddddoooowwwwCCCCoooolllloooorrrr Specifies the color to use to draw the bottom and right sides of the border shadow. This color is used if the XXXXmmmmNNNNttttooooppppSSSShhhhaaaaddddoooowwwwPPPPiiiixxxxmmmmaaaapppp resource is unspecified. XXXXmmmmNNNNbbbboooottttttttoooommmmSSSShhhhaaaaddddoooowwwwPPPPiiiixxxxmmmmaaaapppp Specifies the pixmap to use to draw the bottom and right sides of the border shadow. XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk Specifies a list of callbacks called when the widget is asked to convert a selection. The type of the structure whose address is passed to these callbacks is XXXXmmmmCCCCoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The reason is XXXXmmmmCCCCRRRR____OOOOKKKK. XXXXmmmmNNNNffffoooorrrreeeeggggrrrroooouuuunnnndddd Specifies the foreground drawing color used by Primitive widgets. XXXXmmmmNNNNhhhheeeellllppppCCCCaaaallllllllbbbbaaaacccckkkk Specifies the list of callbacks that is called when the help key is pressed. The reason sent by the callback is XXXXmmmmCCCCRRRR____HHHHEEEELLLLPPPP. XXXXmmmmNNNNhhhhiiiigggghhhhlllliiiigggghhhhttttCCCCoooolllloooorrrr Specifies the color of the highlighting rectangle. This color is used if the highlight pixmap resource is XXXXmmmmUUUUNNNNSSSSPPPPEEEECCCCIIIIFFFFIIIIEEEEDDDD____PPPPIIIIXXXXMMMMAAAAPPPP. XXXXmmmmNNNNhhhhiiiigggghhhhlllliiiigggghhhhttttOOOOnnnnEEEEnnnntttteeeerrrr Specifies if the highlighting rectangle is drawn Page 2 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) when the cursor moves into the widget. If the shell's focus policy is XXXXmmmmEEEEXXXXPPPPLLLLIIIICCCCIIIITTTT, this resource is ignored, and the widget is highlighted when it has the focus. If the shell's focus policy is XXXXmmmmPPPPOOOOIIIINNNNTTTTEEEERRRR and if this resource is True, the highlighting rectangle is drawn when the cursor moves into the widget. If the shell's focus policy is XXXXmmmmPPPPOOOOIIIINNNNTTTTEEEERRRR and if this resource is False, the highlighting rectangle is not drawn when the the cursor moves into the widget. The default is False. XXXXmmmmNNNNhhhhiiiigggghhhhlllliiiigggghhhhttttPPPPiiiixxxxmmmmaaaapppp Specifies the pixmap used to draw the highlighting rectangle. XXXXmmmmNNNNhhhhiiiigggghhhhlllliiiigggghhhhttttTTTThhhhiiiicccckkkknnnneeeessssssss Specifies the thickness of the highlighting rectangle. XXXXmmmmNNNNllllaaaayyyyoooouuuuttttDDDDiiiirrrreeeeccccttttiiiioooonnnn Specifies the direction in which components of the primitive (including strings) are laid out. The values are of type XXXXmmmmDDDDiiiirrrreeeeccccttttiiiioooonnnn. If the widget's parent is a primitive or shell, the value is inherited from the widget's parent. Otherwise, it is inherited from the closest ancestor vendor or menu shell. Refer to the XXXXmmmmDDDDiiiirrrreeeeccccttttiiiioooonnnn(3) reference page for the possible direction values. XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee Determines whether the widget is a tab group. XXXXmmmmNNNNOOOONNNNEEEE Indicates that the widget is not a tab group. XXXXmmmmTTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP Indicates that the widget is a tab group, unless the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of another widget in the hierarchy is XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP. XXXXmmmmSSSSTTTTIIIICCCCKKKKYYYY____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP Indicates that the widget is a tab group, even if the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of another widget in the hierarchy is XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP. XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP Indicates that the widget is a tab group and that widgets in the hierarchy whose XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee is XXXXmmmmTTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP are not Page 3 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) tab groups. When a parent widget has an XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, traversal of non-tab-group widgets within the group is based on the order of those widgets in their parent's XXXXmmmmNNNNcccchhhhiiiillllddddrrrreeeennnn list. When the XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeee of any widget in a hierarchy is XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, traversal of tab groups in the hierarchy proceeds to widgets in the order in which their XXXXmmmmNNNNnnnnaaaavvvviiiiggggaaaattttiiiioooonnnnTTTTyyyyppppeeeeresources were specified as XXXXmmmmEEEEXXXXCCCCLLLLUUUUSSSSIIIIVVVVEEEE____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP or XXXXmmmmSSSSTTTTIIIICCCCKKKKYYYY____TTTTAAAABBBB____GGGGRRRROOOOUUUUPPPP, whether by creating the widgets with that value, by calling XXXXttttSSSSeeeettttVVVVaaaalllluuuueeeessss, or by calling XXXXmmmmAAAAddddddddTTTTaaaabbbbGGGGrrrroooouuuupppp. XXXXmmmmNNNNppppooooppppuuuuppppHHHHaaaannnnddddlllleeeerrrrCCCCaaaallllllllbbbbaaaacccckkkk Allows the application to control which popup menu will be automatically posted. The reason can either be XXXXmmmmCCCCRRRR____PPPPOOOOSSSSTTTT or XXXXmmmmCCCCRRRR____RRRREEEEPPPPOOOOSSSSTTTT:::: XXXXmmmmCCCCRRRR____PPPPOOOOSSSSTTTT Indicates that this is a regular posting request. XXXXmmmmCCCCRRRR____RRRREEEEPPPPOOOOSSSSTTTT Indicates that the menu was just unposted and that this callback was invoked on a replay. This callback uses the XXXXmmmmPPPPooooppppuuuuppppHHHHaaaannnnddddlllleeeerrrrCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuuccccttttstructure to pass information. XXXXmmmmNNNNsssshhhhaaaaddddoooowwwwTTTThhhhiiiicccckkkknnnneeeessssssss Specifies the size of the drawn border shadow. XXXXmmmmNNNNttttooooppppSSSShhhhaaaaddddoooowwwwCCCCoooolllloooorrrr Specifies the color to use to draw the top and left sides of the border shadow. This color is used if the XXXXmmmmNNNNttttooooppppSSSShhhhaaaaddddoooowwwwPPPPiiiixxxxmmmmaaaapppp resource is unspecified. If a default top shadow pixmap exists, it will need to be removed for the XXXXmmmmNNNNttttooooppppSSSShhhhaaaaddddoooowwwwCCCCoooolllloooorrrr to take effect. XXXXmmmmNNNNttttooooppppSSSShhhhaaaaddddoooowwwwPPPPiiiixxxxmmmmaaaapppp Specifies the pixmap to use to draw the top and left sides of the border shadow. A Primitive top shadow pixmap is created in two situations. In Page 4 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) either of these situations, a default 50- foreground top shadow pixmap is created. +o If the Primitive top shadow color is the same as the Core background pixel color. +o If the depth of the screen is only one. For example, if a widget with the same top shadow and background color is created, a default shadow pixmap is generated. Such a pixmap needs to be removed for the XXXXmmmmNNNNttttooooppppSSSShhhhaaaaddddoooowwwwCCCCoooolllloooorrrr resource to take effect. XXXXmmmmNNNNttttrrrraaaavvvveeeerrrrssssaaaallllOOOOnnnn Specifies if traversal is activated for this widget. In CascadeButton and CascadeButtonGadget, this resource is forced to True unless the parent is an OptionMenu. XXXXmmmmNNNNuuuunnnniiiittttTTTTyyyyppppeeee Provides the basic support for resolution independence. It defines the type of units a widget uses with sizing and positioning resources. If the widget's parent is a subclass of XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr and if the XXXXmmmmNNNNuuuunnnniiiittttTTTTyyyyppppeeee resource is not explicitly set, it defaults to the unit type of the parent widget. If the widget's parent is not a subclass of XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr, the resource has a default unit type of XXXXmmmmPPPPIIIIXXXXEEEELLLLSSSS. The unit type can also be specified in resource files, with the following format: <_f_l_o_a_t_i_n_g _v_a_l_u_e><_u_n_i_t> where: _u_n_i_t is <" ", pixels, inches, centimeters, millimeters, points, font units> _p_i_x_e_l_s is <_p_i_x, _p_i_x_e_l, _p_i_x_e_l_s> _i_n_c_h_e_s is <_i_n, _i_n_c_h, _i_n_c_h_e_s> _c_e_n_t_i_m_e_t_e_r is <_c_m, _c_e_n_t_i_m_e_t_e_r, _c_e_n_t_i_m_e_t_e_r_s> _m_i_l_l_i_m_e_t_e_r_s is <_m_m, _m_i_l_l_i_m_e_t_e_r, _m_i_l_l_i_m_e_t_e_r_s> ppppooooiiiinnnnttttssss is <_p_t, _p_o_i_n_t, _p_o_i_n_t_s> Page 5 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) ffffoooonnnntttt uuuunnnniiiittttssss is <_f_u, ffffoooonnnntttt____uuuunnnniiiitttt, ffffoooonnnntttt____uuuunnnniiiittttssss> _f_l_o_a_t is {"+"|"-"}{{<"0"-"9">*}.}<"0"-"9">* Note that the type Dimension must always be positive. For example, xmfonts*XmMainWindow.height: 10.4cm *PostIn.width: 3inches XXXXmmmmNNNNuuuunnnniiiittttTTTTyyyyppppeeee can have the following values: XXXXmmmmPPPPIIIIXXXXEEEELLLLSSSS All values provided to the widget are treated as normal pixel values. XXXXmmmmMMMMIIIILLLLLLLLIIIIMMMMEEEETTTTEEEERRRRSSSS All values provided to the widget are treated as normal millimeter values. _X_m_1_0_0_T_H__M_I_L_L_I_M_E_T_E_R_S All values provided to the widget are treated as 1/100 of a millimeter. XXXXmmmmCCCCEEEENNNNTTTTIIIIMMMMEEEETTTTEEEERRRRSSSS All values provided to the widget are treated as normal centimeter values. XXXXmmmmIIIINNNNCCCCHHHHEEEESSSS All values provided to the widget are treated as normal inch values. _X_m_1_0_0_0_T_H__I_N_C_H_E_S All values provided to the widget are treated as 1/1000 of an inch. XXXXmmmmPPPPOOOOIIIINNNNTTTTSSSS All values provided to the widget are treated as normal point values. A point is a unit used in text processing applications and is defined as 1/72 of an inch. _X_m_1_0_0_T_H__P_O_I_N_T_S All values provided to the widget are treated as 1/100 of a point. A point is a unit used in text processing applications and is defined as 1/72 of an inch. XXXXmmmmFFFFOOOONNNNTTTT____UUUUNNNNIIIITTTTSSSS All values provided to the widget are Page 6 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) treated as normal font units. A font unit has horizontal and vertical components. These are the values of the XmScreen resources XXXXmmmmNNNNhhhhoooorrrriiiizzzzoooonnnnttttaaaallllFFFFoooonnnnttttUUUUnnnniiiittttand XXXXmmmmNNNNvvvveeeerrrrttttiiiiccccaaaallllFFFFoooonnnnttttUUUUnnnniiiitttt. _X_m_1_0_0_T_H__F_O_N_T__U_N_I_T_S All values provided to the widget are treated as 1/100 of a font unit. A font unit has horizontal and vertical components. These are the values of the XXXXmmmmSSSSccccrrrreeeeeeeennnn resources XXXXmmmmNNNNhhhhoooorrrriiiizzzzoooonnnnttttaaaallllFFFFoooonnnnttttUUUUnnnniiiittttand XXXXmmmmNNNNvvvveeeerrrrttttiiiiccccaaaallllFFFFoooonnnnttttUUUUnnnniiiitttt. XXXXmmmmNNNNuuuusssseeeerrrrDDDDaaaattttaaaa Allows the application to attach any necessary specific data to the widget. It is an internally unused resource. DDDDyyyynnnnaaaammmmiiiicccc CCCCoooolllloooorrrr DDDDeeeeffffaaaauuuullllttttssss The foreground, background, top shadow, bottom shadow, and highlight color resources are dynamically defaulted. If no color data is specified, the colors are automatically generated. On a single-plane system, a black and white color scheme is generated. Otherwise, four colors are generated, which display the correct shading for the 3-D visuals. If the background is the only color specified for a widget, the top shadow and bottom shadow colors are generated to give the 3-D appearance. Foreground and highlight colors are generated to provide sufficient contrast with the background color. Colors are generated only at creation. Resetting the background through XXXXttttSSSSeeeettttVVVVaaaalllluuuueeeessss does not regenerate the other colors. XXXXmmmmCCCChhhhaaaannnnggggeeeeCCCCoooolllloooorrrr can be used to recalculate all associated colors based on a new background color. IIIInnnnhhhheeeerrrriiiitttteeeedddd RRRReeeessssoooouuuurrrrcccceeeessss Primitive inherits behavior and resources from the superclass described in the following table. For a complete description of each resource, refer to the reference page for that superclass. CCCCoooorrrreeee RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt NNNNaaaammmmeeee CCCCllllaaaassssssss TTTTyyyyppppeeee DDDDeeeeffffaaaauuuulllltttt AAAAcccccccceeeessssssss XmNaccelerators XmCAccelerators XtAccelerators dynamic CSG XmNancestorSensitive XmCSensitive Boolean dynamic G XmNbackground XmCBackground Pixel dynamic CSG Page 7 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) XmNbackgroundPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG XmNborderColor XmCBorderColor Pixel XtDefaultForeground CSG XmNborderPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG XmNborderWidth XmCBorderWidth Dimension 0 CSG XmNcolormap XmCColormap Colormap dynamic CG XmNdepth XmCDepth int dynamic CG XmNdestroyCallback XmCCallback XtCallbackList NULL C XmNheight XmCHeight Dimension dynamic CSG XmNinitialResourcesPersistent XmCInitialResourcesPersistent Boolean True C XmNmappedWhenManaged XmCMappedWhenManaged Boolean True CSG XmNscreen XmCScreen Screen * dynamic CG XmNsensitive XmCSensitive Boolean True CSG XmNtranslations XmCTranslations XtTranslations dynamic CSG XmNwidth XmCWidth Dimension dynamic CSG XmNx XmCPosition Position 0 CSG XmNy XmCPosition Position 0 CSG CCCCaaaallllllllbbbbaaaacccckkkk IIIInnnnffffoooorrrrmmmmaaaattttiiiioooonnnn A pointer to the following structure is passed to each callback for XXXXmmmmNNNNhhhheeeellllppppCCCCaaaallllllllbbbbaaaacccckkkk: typedef struct { int _r_e_a_s_o_n; XEvent * _e_v_e_n_t; } XmAnyCallbackStruct; _r_e_a_s_o_n Indicates why the callback was invoked. For this callback, _r_e_a_s_o_n is set to XXXXmmmmCCCCRRRR____HHHHEEEELLLLPPPP. _e_v_e_n_t Points to the _X_E_v_e_n_t that triggered the callback. A pointer to the following callback structure is passed to the XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk procedures: typedef struct { int _r_e_a_s_o_n; XEvent *_e_v_e_n_t; Atom _s_e_l_e_c_t_i_o_n; Atom _t_a_r_g_e_t; XtPointer _s_o_u_r_c_e__d_a_t_a; XtPointer location_data; int _f_l_a_g_s; XtPointer _p_a_r_m; int _p_a_r_m__f_o_r_m_a_t; unsigned long _p_a_r_m__l_e_n_g_t_h; Atom _p_a_r_m__t_y_p_e; int _s_t_a_t_u_s; XtPointer _v_a_l_u_e; Atom _t_y_p_e; int _f_o_r_m_a_t; Page 8 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) unsigned long _l_e_n_g_t_h; } XmConvertCallbackStruct; _r_e_a_s_o_n Indicates why the callback was invoked. _e_v_e_n_t Points to the _X_E_v_e_n_t that triggered the callback. It can be NULL. _s_e_l_e_c_t_i_o_n Indicates the selection for which conversion is being requested. Possible values are _C_L_I_P_B_O_A_R_D, _P_R_I_M_A_R_Y, _S_E_C_O_N_D_A_R_Y, and ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP. _t_a_r_g_e_t Indicates the conversion target. _s_o_u_r_c_e__d_a_t_a Contains information about the selection source. When the selection is ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP, _s_o_u_r_c_e__d_a_t_a is the DragContext. Otherwise, it is NULL. llllooooccccaaaattttiiiioooonnnn____ddddaaaattttaaaa Contains information about the location of data to be converted. If the value is NULL, the data to be transferred consists of the widget's current selection. Otherwise, the type and interpretation of the value are specific to the widget class. _f_l_a_g_s Indicates the status of the conversion. Following are the possible values: XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____NNNNOOOONNNNEEEE This flag is currently unused. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____PPPPAAAARRRRTTTTIIIIAAAALLLL The target widget was able to be converted, but some data was lost. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____SSSSAAAAMMMMEEEE The conversion target is the source of the data to be transferred. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____TTTTRRRRAAAANNNNSSSSAAAACCCCTTTT This flag is currently unused. _p_a_r_m Contains parameter data for this target. If no parameter data exists, the value is NULL. When _s_e_l_e_c_t_i_o_n is _C_L_I_P_B_O_A_R_D and _t_a_r_g_e_t is ____MMMMOOOOTTTTIIIIFFFF____CCCCLLLLIIIIPPPPBBBBOOOOAAAARRRRDDDD____TTTTAAAARRRRGGGGEEEETTTTSSSS or ____MMMMOOOOTTTTIIIIFFFF____DDDDEEEEFFFFEEEERRRRRRRREEEEDDDD____CCCCLLLLIIIIPPPPBBBBOOOOAAAARRRRDDDD____TTTTAAAARRRRGGGGEEEETTTTSSSS, the value is the requested operation (XXXXmmmmCCCCOOOOPPPPYYYY, XXXXmmmmMMMMOOOOVVVVEEEE, or XXXXmmmmLLLLIIIINNNNKKKK). Page 9 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) _p_a_r_m__f_o_r_m_a_t Specifies whether the data in _p_a_r_m should be viewed as a list of _c_h_a_r, _s_h_o_r_t, or _l_o_n_g quantities. Possible values are 0 (when _p_a_r_m is NULL), 8 (when the data in _p_a_r_m should be viewed as a list of _c_h_a_rs), 16 (when the data in _p_a_r_m should be viewed as a list of _s_h_o_r_ts), or 32 (when the data in _p_a_r_m should be viewed as a list of _l_o_n_gs). Note that _p_a_r_m__f_o_r_m_a_t symbolizes a data type, not the number of bits in each list element. For example, on some machines, a _p_a_r_m__f_o_r_m_a_t of 32 means that the data in _p_a_r_m should be viewed as a list of 64-bit quantities, not 32-bit quantities. _p_a_r_m__l_e_n_g_t_h Specifies the number of elements of data in _p_a_r_m, where each element has the size specified by _p_a_r_m__f_o_r_m_a_t. When _p_a_r_m is NULL, the value is 0. _p_a_r_m__t_y_p_e Specifies the parameter type of _p_a_r_m. _s_t_a_t_u_s An IN/OUT member that specifies the status of the conversion. The initial value is XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDEEEEFFFFAAAAUUUULLLLTTTT. The callback procedure can set this member to one of the following values: XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDEEEEFFFFAAAAUUUULLLLTTTT This value means that the widget class conversion procedure, if any, is called after the callback procedures return. If the widget class conversion procedure produces any data, it overwrites the data provided by the callback procedures in the _v_a_l_u_emember. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____MMMMEEEERRRRGGGGEEEE This value means that the widget class conversion procedure, if any, is called after the callback procedures return. If the widget class conversion procedure produces any data, it appends its data to the data provided by the callback procedures in the _v_a_l_u_e member. This value is intended for use with targets that result in lists of data, such as _T_A_R_G_E_T_S. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDOOOONNNNEEEE This value means that the callback procedure has successfully finished the conversion. The widget class conversion procedure, if any, is not called after Page 10 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) the callback procedures return. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____RRRREEEEFFFFUUUUSSSSEEEE This value means that the callback procedure has terminated the conversion process without completing the requested conversion. The widget class conversion procedure, if any, is not called after the callback procedures return. _v_a_l_u_e An IN/OUT parameter that contains any data that the callback procedure produces as a result of the conversion. The initial value is NULL. If the callback procedure sets this member, it must ensure that the _t_y_p_e, _f_o_r_m_a_t, and _l_e_n_g_t_h members correspond to the data in _v_a_l_u_e. The callback procedure is responsible for allocating memory when it sets this member. The toolkit frees this memory when it is no longer needed. _t_y_p_e An IN/OUT parameter that indicates the type of the data in the _v_a_l_u_e member. The initial value is _I_N_T_E_G_E_R. _f_o_r_m_a_t An IN/OUT parameter that specifies whether the data in _v_a_l_u_e should be viewed as a list of _c_h_a_r, _s_h_o_r_t, or _l_o_n_g quantities. The initial value is 8. The callback procedure can set this member to 8 (for a list of _c_h_a_r), 16 (for a list of _s_h_o_r_t), or 32 (for a list of _l_o_n_g). _l_e_n_g_t_h An IN/OUT member that specifies the number of elements of data in _v_a_l_u_e, where each element has the size symbolized by _f_o_r_m_a_t. The initial value is 0. A pointer to the following structure is passed to each callback for XXXXmmmmNNNNppppooooppppuuuuppppHHHHaaaannnnddddlllleeeerrrrCCCCaaaallllllllbbbbaaaacccckkkk: typedef struct { int _r_e_a_s_o_n; XEvent * _x_e_v_e_n_t; Widget _m_e_n_u_T_o_P_o_s_t; Boolean _p_o_s_t_I_t; Widget _t_a_r_g_e_t; } XmPopupHandlerCallbackStruct; _r_e_a_s_o_n Indicates why the callback was invoked. _x_e_v_e_n_t Points to the _X_E_v_e_n_t that triggered the handler. Page 11 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) _m_e_n_u_T_o_P_o_s_t Specifies the popup menu that the menu system believes should be posted. The application may modify this field. _p_o_s_t_I_t Indicates whether the posting process should continue. The application may modify this field. _t_a_r_g_e_t Specifies the most specific widget or gadget that the menu sytem found from the event that matches the event. TTTTrrrraaaannnnssssllllaaaattttiiiioooonnnnssss The XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee translations are listed below. Note that for buttons in menus, altering translations in ####oooovvvveeeerrrrrrrriiiiddddeeeeor ####aaaauuuuggggmmmmeeeennnntttt mode is undefined. The following key names are listed in the X standard key event translation table syntax. This format is the one used by Motif to specify the widget actions corresponding to a given key. A brief overview of the format is provided under VVVViiiirrrrttttuuuuaaaallllBBBBiiiinnnnddddiiiinnnnggggssss(3). For a complete description of the format, please refer to the X Toolkit Instrinsics Documentation. ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffAAAAccccttttiiiivvvvaaaatttteeee>>>>: PrimitiveParentActivate() ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffCCCCaaaannnncccceeeellll>>>>: PrimitiveParentCancel() ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffBBBBeeeeggggiiiinnnnLLLLiiiinnnneeee>>>>: PrimitiveTraverseHome() ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffUUUUpppp>>>>: PrimitiveTraverseUp() ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffDDDDoooowwwwnnnn>>>>: PrimitiveTraverseDown() ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffLLLLeeeefffftttt>>>>: PrimitiveTraverseLeft() ::::<<<<KKKKeeeeyyyy>>>><<<<oooossssffffRRRRiiiigggghhhhtttt>>>>: PrimitiveTraverseRight() ~~~~ssss ~~~~mmmm ~~~~aaaa <<<<KKKKeeeeyyyy>>>>RRRReeeettttuuuurrrrnnnn: PrimitiveParentActivate() ssss ~~~~mmmm ~~~~aaaa <<<<KKKKeeeeyyyy>>>>TTTTaaaabbbb: PrimitivePrevTabGroup() Page 12 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) ~~~~mmmm ~~~~aaaa <<<<KKKKeeeeyyyy>>>>TTTTaaaabbbb: PrimitiveNextTabGroup() <<<<KKKKeeeeyyyy>>>><<<<oooossssffffHHHHeeeellllpppp>>>>: PrimitiveHelp() AAAAccccttttiiiioooonnnn RRRRoooouuuuttttiiiinnnneeeessss The XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee action routines are PrimitiveHelp(): Calls the callbacks for XXXXmmmmNNNNhhhheeeellllppppCCCCaaaallllllllbbbbaaaacccckkkk if any exist. If there are no help callbacks for this widget, this action calls the help callbacks for the nearest ancestor that has them. PrimitiveNextTabGroup(): This action depends on the value of the Display resource XXXXmmmmNNNNeeeennnnaaaabbbblllleeeeBBBBuuuuttttttttoooonnnnTTTTaaaabbbb. When XXXXmmmmNNNNeeeennnnaaaabbbblllleeeeBBBBuuuuttttttttoooonnnnTTTTaaaabbbb is False (default), this action traverses to the first item in the next tab group. If the current tab group is the last entry in the tab group list, it wraps to the beginning of the tab group list. When XXXXmmmmNNNNeeeennnnaaaabbbblllleeeeBBBBuuuuttttttttoooonnnnTTTTaaaabbbb is True, this action moves to the next item within the current tab group, unless it is the last item in the tab group. When the item is the last in the group, the action traverses to the first item in the next tab group. The XXXXmmmmNNNNeeeennnnaaaabbbblllleeeeBBBBuuuuttttttttoooonnnnTTTTaaaabbbb behavior applies only to PushButton, ArrowButton, and DrawnArrow. PrimitiveParentActivate(): If the parent is a manager, passes the KKKKAAAAccccttttiiiivvvvaaaatttteeee event received by the widget to the parent. PrimitiveParentCancel(): If the parent is a manager, passes the KKKKCCCCaaaannnncccceeeellll event received by the widget to the parent. PrimitivePrevTabGroup(): This action depends on the value of the Display resource XXXXmmmmNNNNeeeennnnaaaabbbblllleeeeBBBBuuuuttttttttoooonnnnTTTTaaaabbbb. When XXXXmmmmNNNNeeeennnnaaaabbbblllleeeeBBBBuuuuttttttttoooonnnnTTTTaaaabbbb is False (default), this action traverses to the first item in the previous tab group. If the beginning of the tab group list is reached, it wraps to the end of the tab group list. When XXXXmmmmNNNNeeeennnnaaaabbbblllleeeeBBBBuuuuttttttttoooonnnnTTTTaaaabbbb is True, this action moves to the previous item within the current tab group unless it is the first item in the tab group. When Page 13 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) the item is the first in the group, the action traverses to the first item in the previous tab group. The XXXXmmmmNNNNeeeennnnaaaabbbblllleeeeBBBBuuuuttttttttoooonnnnTTTTaaaabbbb behavior applies only PushButton, ArrowButton, and DrawnButton. PrimitiveTraverseDown(): Traverses to the next item below the current widget in the current tab group, wrapping if necessary. The wrapping direction depends on the layout direction of the widget tab group. PrimitiveTraverseHome(): Traverses to the first widget or gadget in the current tab group. PrimitiveTraverseLeft(): Traverses to the next item to the left of the current widget in the current tab group, wrapping if necessary. The wrapping direction depends on the layout direction of the widget tab group. PrimitiveTraverseNext(): Traverses to the next item in the current tab group, wrapping if necessary. The wrapping direction depends on the layout direction of the widget tab group. PrimitiveTraversePrev(): Traverses to the previous item in the current tab group, wrapping if necessary. The wrapping direction depends on the layout direction of the widget tab group. PrimitiveTraverseRight(): Traverses to the next item to the right of the current gadget in the current tab group, wrapping if necessary. The wrapping direction depends on the layout direction of the widget tab group. PrimitiveTraverseUp(): Traverses to the next item above the current gadget in the current tab group, wrapping if necessary. The wrapping direction depends on the layout direction of the widget tab group. AAAAddddddddiiiittttiiiioooonnnnaaaallll BBBBeeeehhhhaaaavvvviiiioooorrrr This widget has the following additional behavior: <<<<FFFFooooccccuuuussssIIIInnnn>>>>: If the shell's keyboard focus policy is XXXXmmmmEEEEXXXXPPPPLLLLIIIICCCCIIIITTTT, highlights the widget and gives it the focus Page 14 (printed 10/3/02) XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmPPPPrrrriiiimmmmiiiittttiiiivvvveeee((((3333XXXX)))) <<<<FFFFooooccccuuuussssOOOOuuuutttt>>>>: If the shell's keyboard focus policy is XXXXmmmmEEEEXXXXPPPPLLLLIIIICCCCIIIITTTT, unhighlights the widget and removes the focus VVVViiiirrrrttttuuuuaaaallll BBBBiiiinnnnddddiiiinnnnggggssss The bindings for virtual keys are vendor specific. For information about bindings for virtual buttons and keys, see VVVViiiirrrrttttuuuuaaaallllBBBBiiiinnnnddddiiiinnnnggggssss(3). RRRREEEELLLLAAAATTTTEEEEDDDD CCCCoooorrrreeee(3), XXXXmmmmDDDDiiiirrrreeeeccccttttiiiioooonnnn(3), XXXXmmmmCCCChhhhaaaannnnggggeeeeCCCCoooolllloooorrrr(3), and XXXXmmmmSSSSccccrrrreeeeeeeennnn(3). Page 15 (printed 10/3/02)